package com.aizuda.boot.modules.common.constant.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 纳税人类型枚举
 */
@Getter
@AllArgsConstructor
public enum TaxpayerTypeEnum {

    /**
     * 一般纳税人
     */
    GENERAL("general", "一般纳税人"),

    /**
     * 小规模纳税人
     */
    SMALL("small", "小规模纳税人");

    /**
     * 编码
     */
    private final String code;

    /**
     * 描述
     */
    private final String description;

    /**
     * 根据编码获取枚举
     *
     * @param code 编码
     * @return 纳税人类型枚举
     */
    public static TaxpayerTypeEnum fromCode(String code) {
        for (TaxpayerTypeEnum type : values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }

    /**
     * 根据描述获取枚举
     *
     * @param description 描述
     * @return 纳税人类型枚举
     */
    public static TaxpayerTypeEnum fromDescription(String description) {
        for (TaxpayerTypeEnum type : values()) {
            if (type.getDescription().equals(description)) {
                return type;
            }
        }
        return null;
    }
} 